// C++.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "tree.hh"
#include<iostream>
using std::cout;
using std::cin;
using std::endl;

bool MovimentoCavalo1(int x,int y);
bool MovimentoCavalo2(int x,int y);
bool MovimentoCavalo3(int x,int y);
bool MovimentoCavalo4(int x,int y);
bool MovimentoCavalo5(int x,int y);
bool MovimentoCavalo6(int x,int y);
bool MovimentoCavalo7(int x,int y);
bool MovimentoCavalo8(int x,int y);
int AccessOfThisPlace(int x,int y);

int _tmain(int argc, _TCHAR* argv[])
{
	   tree<int> tr;
	   tree<int>::iterator top, one, two, loc, banana;
    
	int Accecibility[8][8];
	int Useds[8][8];
	char User[25];
	cout << "Qual seu nome?\n";
	cin >> User;
	
	for (int i=0;i<=7;i++)
	{
		for (int j=0;j<=7;j++)
		{
			Accecibility[i][j] = AccessOfThisPlace(i,j);
		}
	}

	for (int i=0;i<=7;i++) 
	{ 
		cout << "-----------------\n";
		cout << "|" << Accecibility[i][0] << "|" << Accecibility[i][1] << "|" << Accecibility[i][2] << "|" << Accecibility[i][3] << "|" << Accecibility[i][4] << "|" << Accecibility[i][5] << "|" << Accecibility[i][6] << "|" << Accecibility[i][7] << "|\n";
		
	}
	cout << "-----------------\n";
	
	
	
	
	return 0;

}

bool MovimentoCavalo1(int x,int y)
{
	x=x-1;
	y=y+2;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}
bool MovimentoCavalo2(int x,int y)
{
	x=x+1;
	y=y+2;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}
bool MovimentoCavalo3(int x,int y)
{
	x=x+2;
	y=y+1;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}
bool MovimentoCavalo4(int x,int y)
{
	x=x+2;
	y=y-1;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}
bool MovimentoCavalo5(int x,int y)
{
	x=x+1;
	y=y-2;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}
bool MovimentoCavalo6(int x,int y)
{
	x=x-1;
	y=y-2;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}
bool MovimentoCavalo7(int x,int y)
{
	x=x-2;
	y=y-1;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}
bool MovimentoCavalo8(int x,int y)
{
	x=x-2;
	y=y+1;
	if ((x>=0)&&(x<=7)&&(y>=0)&&(y<=7))
		return true; //Valid
	else
		return false;
}

int AccessOfThisPlace(int x,int y)
{
	int accessFrom=0;	
			
			if (MovimentoCavalo1(x,y))
				accessFrom++;
			if (MovimentoCavalo2(x,y))
				accessFrom++;
			if (MovimentoCavalo3(x,y))
				accessFrom++;
			if (MovimentoCavalo4(x,y))
				accessFrom++;
			if (MovimentoCavalo5(x,y))
				accessFrom++;
			if (MovimentoCavalo6(x,y))
				accessFrom++;
			if (MovimentoCavalo7(x,y))
				accessFrom++;
			if (MovimentoCavalo8(x,y))
				accessFrom++;

	return accessFrom;
	
}

